package com.atguigu.spring5.facbean;

import com.atguigu.spring5.collectiontype.Course;
import org.springframework.beans.factory.FactoryBean;

/**
 * 工厂bean:在配置文件定义 bean 类型可以和返回类型不一样
 * 在泛型中指定返回的对象，如果不设置是返回object
 */
public class MyBean implements FactoryBean<Course> {


    /**
     * 返回bean的实例
     *
     * @return
     * @throws Exception
     */
    @Override
    public Course getObject() throws Exception {
        Course course = new Course();
        course.setCname("abc");
        return course;
    }

    /**
     * 返回bean的类型
     *
     * @return
     */
    @Override
    public Class<?> getObjectType() {
        return null;
    }

    /**
     * 这个bean是否是一个单例
     *
     * @return
     */
    @Override
    public boolean isSingleton() {
        return false;
    }
}
